import Vue from 'vue'
import {
  setToken, setEnterpriseId, setVeekrayStatus,
  setShowBuyCard, setStoreCardFlag, setMemberNature, setMemberId, setCommanderStatus } from '@/utils/auth'
import { getMemberInfo } from '@/api/home'

let vue = new Vue()

export function checkLogin(memberId, customerId) {
  console.log('memberId:' + memberId)
  console.log('customerId:' + customerId)
  // 检查memberId 是否有效
  if (memberId) {
    getMemberInfo(memberId).then((response) => {
      if (response.isError) {
        // 如果会员id不存在，不传入会员id
        ptLogin()
      } else {
        setStoreCardFlag(response.data.storeCardFlag)
        setMemberNature(response.data.nature)
        ptLogin(memberId)
      }
    }).catch(() => {
    })
  } else {
    ptLogin()
  }
}

// 区分平台登录
export function ptLogin(memberId) {
  if (vue.$platform === 'wx') {
    wxLogin(memberId)
  }
}

export function wxLogin(memberId) {
  vue.$pt.login({
    success(res) {
      if (res.code) {
        // 登录成功后请求获取用户数据方法
        getAuth(res.code).then((response) => {
          if (response.isError) {
            // 出错重新登录
            setTimeout(() => {
              wxLogin(memberId)
            }, 3000)
            return
          }
          // 缓存customerId
          // response.data.memberId && setCustomerId(response.data.memberId)
          // 缓存手机号
          // response.data.phone && setPhone(response.data.phone)
          // 缓存企业enterpriseId
          if (response.data.enterpriseId) {
            setEnterpriseId(response.data.enterpriseId)
          }
          // 缓存token
          setToken(response.data.token)
          // 缓存用户身份
          setVeekrayStatus(response.data.veekrayStatus)
          setCommanderStatus(response.data.commanderStatus)
          setShowBuyCard(response.data.showBuyCard)
          response.data.customerId && vue.$pt.switchTab({ url: '/pages/home/main' })
        }).catch(() => {
        })
      } else {
        vue.$utils.showToast({ title: '登录失败' })
      }
    }
  })
}

export function memberEls(memberId) {
  setMemberId(memberId)
  vue.$utils.setMyId(memberId)
  if (vue.$pt.getStorageSync('messageListIn')) {
    vue.$pt.reLaunch({ url: '/pages/personal/message/list/main' })
    return
  }
  vue.$pt.reLaunch({ url: '/pages/home/main' })
}

/*
  接口地址 /api/wechat/auth
  请求方式 GET
  接口描述 小程序登录认证
*/
export function getAuth(code) {
  return vue.$fly.request({
    url: '/wechat/auth',
    method: 'get',
    params: {
      code: code,
      version: Math.floor(process.env.VERSION)
    }
  })
}

/*
  接口地址 /api/wechat/checkMemberUnionId
  请求方式 GET
  接口描述 验证手机号是否有unionId
*/
export function checkMemberUnionId(params) {
  return vue.$fly.request({
    url: '/wechat/checkMemberUnionId',
    method: 'get',
    params: params
  })
}

/*
  接口地址 /api/login/loginByPhone
  请求方式 GET
  接口描述 门店账号密码登录
*/
export function loginByPhone(params) {
  return vue.$fly.request({
    url: '/login/loginByPhone',
    method: 'get',
    params: params
  })
}
